using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Srvtools;

namespace cLimTrans
{
    public partial class Form1 : InfoForm
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //隱藏鍵值欄位            
            this.nOVOUDataGridViewTextBoxColumn1.Visible = false;
        }

        private void infoDataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
        ////////////
        public string GetToday()
        {
            return string.Format("{0:yyyyMMdd}", DateTime.Today);
        }

        public string GetNowTime()
        {
            return string.Format("{0:hhmmss}", DateTime.Now);
        }

        public string GetUser()
        {
            return CliUtils.fLoginUser;
        }

        private void bindingNavigatorEditItem_Click(object sender, EventArgs e)
        {            
            //以string儲存,在按下修改時
            ((DataRowView)ibsMaster.Current)["UPDATE_USER"] = CliUtils.fLoginUser;
            ((DataRowView)ibsMaster.Current)["UPDATE_DATE"] = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
            ((DataRowView)ibsMaster.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now); 
        }

        private void ibsMaster_CurrentChanged(object sender, EventArgs e)
        {
         string state = infoNavigator1.GetCurrentState();
         if (state == "Inserting" || state == "Editing" || state == "Initial" || state == "Browsed")
         {
             //修改時間顯示
             string UPDATE_TIME = ((DataRowView)ibsMaster.Current)["UPDATE_TIME"].ToString();
             if (UPDATE_TIME.Length == 6)
              infoTextBox5.Text = Convert.ToDateTime(UPDATE_TIME.Substring(0, 2) + ":" + UPDATE_TIME.Substring(2, 2) + ":" + UPDATE_TIME.Substring(4, 2)).ToLongTimeString(); 
             else if (UPDATE_TIME.Length == 0)
                 infoTextBox5.Text = "";


             //建檔時間顯示
             string CREATE_TIME = ((DataRowView)ibsMaster.Current)["CREATE_TIME"].ToString();
             if (CREATE_TIME.Length == 6)
              infoTextBox3.Text = Convert.ToDateTime(CREATE_TIME.Substring(0, 2) + ":" + CREATE_TIME.Substring(2, 2) + ":" + CREATE_TIME.Substring(4, 2)).ToLongTimeString(); 
             else if (CREATE_TIME.Length == 0)
                 infoTextBox3.Text = "";
         }
        }

        private void ibsMaster_AddingNew(object sender, AddingNewEventArgs e)
        {
            //在新增就顯示建檔時間 
            infoTextBox3.Text = DateTime.Now.ToLongTimeString();
        }

        private void ibsMaster_AfterEdit(object sender, EventArgs e)
        {
            //以string儲存
            ((DataRowView)ibsMaster.Current)["UPDATE_USER"] = CliUtils.fLoginUser;
            ((DataRowView)ibsMaster.Current)["UPDATE_DATE"] = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
            ((DataRowView)ibsMaster.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now); 
        }

        private void InfoRefValBox1_Leave(object sender, EventArgs e)
        {                        
            string stat = infoNavigator1.GetCurrentState();
            if (stat == "Inserting" || stat == "Editing")
            {               
                //檢查來源倉與目標倉是否相同,空白情形除外
                if (InfoRefValBox1.TextBoxText == "" && InfoRefValBox2.TextBoxText == "")
                { }
                else if (InfoRefValBox1.TextBoxText == InfoRefValBox2.TextBoxText)
                { System.Windows.Forms.MessageBox.Show("目標倉與來源倉不可一樣!"); }                
               
            }

           
        }

        private void infoDataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if ((infoNavigator1.GetCurrentState() == "Inserting") || (infoNavigator1.GetCurrentState() == "Editing"))
            {
                float AM_AMT = 0, QT_QTY = 0, QT_QTY_TEMP;
                //計算實售金額＝數量*售價 
                if ((e.ColumnIndex == 4) || (e.ColumnIndex == 5))
                {
                    AM_AMT = float.Parse(infoDataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString());
                    AM_AMT = AM_AMT * float.Parse(infoDataGridView1[9 - e.ColumnIndex, e.RowIndex].Value.ToString());
                    infoDataGridView1[6, e.RowIndex].Value = AM_AMT;
                    //QT_QTY不能大於QT_QTY_TEMP
                    QT_QTY = float.Parse(infoDataGridView1[4, e.RowIndex].Value.ToString());
                    QT_QTY_TEMP = float.Parse(infoDataGridView1[7, e.RowIndex].Value.ToString());
                    if (QT_QTY > QT_QTY_TEMP)
                    {
                        System.Windows.Forms.MessageBox.Show("借出數量超過!");
                        infoDataGridView1[4, e.RowIndex].Value = infoDataGridView1[7, e.RowIndex].Value;
                    }
                }
            }  
        }

        public string GetWHATR()
        {
            return ((DataRowView)ibsMaster.Current)["CD_WHATR"].ToString();
        }
        public bool CheckWH(string value)
        {
            if (InfoRefValBox1.TextBoxText == InfoRefValBox2.TextBoxText)
            { return false; }
            else
            { return true; }
        }

        private void InfoRefValBox2_Leave(object sender, EventArgs e)
        {           
                //檢查來源倉與目標倉是否相同,空白情形除外                        
                if (InfoRefValBox1.TextBoxText == "" && InfoRefValBox2.TextBoxText == "")
                { }
                else if (InfoRefValBox1.TextBoxText == InfoRefValBox2.TextBoxText)
                { System.Windows.Forms.MessageBox.Show("目標倉與來源倉不可一樣!"); }
              
        }

        public string GetWH()
        {
            return InfoRefValBox1.TextBoxSelectedValue;
        }

        private void infoDataGridView2_Click(object sender, EventArgs e)
        {
            //重新設定明細欄位的ReadOnly屬性(因為使用AutoDisableControl會造成回歸預設值False)
            this.infoDataGridView2.ReadOnly = true;
        }

        private void infoDataGridView1_Click(object sender, EventArgs e)
        {
            //重新設定明細欄位的ReadOnly屬性(因為使用AutoDisableControl會造成回歸預設值False)
            this.nOVOUDataGridViewTextBoxColumn.ReadOnly = true;
            this.cNSEQDataGridViewTextBoxColumn.ReadOnly = true;
            this.nMITEMDataGridViewTextBoxColumn.ReadOnly = true;
            this.pRCOSTDataGridViewTextBoxColumn.ReadOnly = true;
            this.aMCOSTDataGridViewTextBoxColumn.ReadOnly = true;
        }

        public bool CheckWH2(string value)
        {
            if (InfoRefValBox1.TextBoxText == InfoRefValBox2.TextBoxText)
                return false;
            else
                return true;
        }

        private void ibsDetail_BeforeEdit(object sender, EventArgs e)
        {
            //記錄Detail的修改時間日期
            ((DataRowView)ibsDetail.Current)["UPDATE_USER"] = CliUtils.fLoginUser;
            ((DataRowView)ibsDetail.Current)["UPDATE_DATE"] = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
            ((DataRowView)ibsDetail.Current)["UPDATE_TIME"] = string.Format("{0:hhmmss}", DateTime.Now);
        }

        private void infoNavigator1_StateChanged(object sender, InfoNavigatorStateChangedEventArgs e)
        {
            //將DateTimePicker設為不可改
            this.InfoDateTimePicker0.Enabled = false;
            this.InfoDateTimePicker11.Enabled = false;
        }

        private void rvWH_OnReturn(object sender, OnReturnEventArgs e)
        {           
                //換倉庫時清除明細內容
                int n = ibsDetail.List.Count;
                for (int i = 0; i < n; i++)
                {
                    ibsDetail.List.RemoveAt(0);
                }            
        }

        private void rvWH2_OnReturn(object sender, OnReturnEventArgs e)
        {            
                //換倉庫時清除明細內容
                int n = ibsDetail.List.Count;
                for (int i = 0; i < n; i++)
                {
                    ibsDetail.List.RemoveAt(0);
                }            
        }
        
    }
}

